package 炫彩基类

import (
	common "gitee.com/go_888/xcgui/xcgui/common"
	"unsafe"

	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// 框架窗口_创建, 返回GUI库窗口资源句柄.
//
//
//
//
//
//
//
// ff:框架窗口_创建
// x:左上角x坐标
// y:左上角y坐标
// cx:宽度
// cy:高度
// pTitle:标题
// hWndParent:父窗口句柄
// XCStyle:XC样式
func X框架窗口_创建(左上角x坐标, 左上角y坐标, 宽度, 高度 int32, 标题 string, 父窗口句柄 uintptr, XC样式 xcc.X窗口样式) int {
	r, _, _ := xFrameWnd_Create.Call(uintptr(左上角x坐标), uintptr(左上角y坐标), uintptr(宽度), uintptr(高度), common.X文本到uintptr(标题), 父窗口句柄, uintptr(XC样式))
	return int(r)
}

// 框架窗口_创建扩展, 返回GUI库窗口资源句柄.
//
//
//
//
//
//
//
//
//
//
// ff:框架窗口_创建EX
// dwExStyle:扩展样式
// dwStyle:样式
// lpClassName:类名
// x:左上角x坐标
// y:左上角y坐标
// cx:宽度
// cy:高度
// pTitle:窗口名
// hWndParent:父窗口
// XCStyle:XC样式
func X框架窗口_创建EX(扩展样式, 样式 uint32, 类名 string, 左上角x坐标, 左上角y坐标, 宽度, 高度 int32, 窗口名 string, 父窗口 uintptr, XC样式 xcc.X窗口样式) int {
	r, _, _ := xFrameWnd_CreateEx.Call(uintptr(扩展样式), uintptr(样式), common.X文本到uintptr(类名), uintptr(左上角x坐标), uintptr(左上角y坐标), uintptr(宽度), uintptr(高度), common.X文本到uintptr(窗口名), 父窗口, uintptr(XC样式))
	return int(r)
}

// 框架窗口_取布局区域坐标, 用来布局窗格的区域坐标, 不包含码头.
//
//
// ff:框架窗口_取布局区域坐标
// hWindow:窗口句柄
// pRect:返回矩形
func X框架窗口_取布局区域坐标(窗口句柄 int, 返回矩形 *X结构_矩形) int {
	r, _, _ := xFrameWnd_GetLayoutAreaRect.Call(uintptr(窗口句柄), uintptr(unsafe.Pointer(返回矩形)))
	return int(r)
}

// 框架窗口_置视图, 设置窗格组TabBar高度.
//
//
// ff:框架窗口_设置视图
// hWindow:窗口句柄
// hEle:元素句柄
func X框架窗口_设置视图(窗口句柄 int, 元素句柄 int) int {
	r, _, _ := xFrameWnd_SetView.Call(uintptr(窗口句柄), uintptr(元素句柄))
	return int(r)
}

// 框架窗口_置窗格分隔条颜色.
//
//
// ff:框架窗口_设置窗格分隔条颜色
// hWindow:窗口句柄
// color:ABGR颜色值
func X框架窗口_设置窗格分隔条颜色(窗口句柄 int, ABGR颜色值 int) int {
	r, _, _ := xFrameWnd_SetPaneSplitBarColor.Call(uintptr(窗口句柄), uintptr(ABGR颜色值))
	return int(r)
}

// 框架窗口_置TabBar条高度, 设置窗格组TabBar高度.
//
//
// ff:框架窗口_设置TabBar条高度
// hWindow:窗口句柄
// nHeight:高度
func X框架窗口_设置TabBar条高度(窗口句柄 int, 高度 int32) int {
	r, _, _ := xFrameWnd_SetTabBarHeight.Call(uintptr(窗口句柄), uintptr(高度))
	return int(r)
}

// 框架窗口_保存布局到文件, 保存布局信息到文件.
//
//
// ff:框架窗口_保存布局到文件
// hWindow:窗口句柄
// pFileName:文件名
func X框架窗口_保存布局到文件(窗口句柄 int, 文件名 string) bool {
	r, _, _ := xFrameWnd_SaveLayoutToFile.Call(uintptr(窗口句柄), common.X文本到uintptr(文件名))
	return r != 0
}

// 框架窗口_加载布局信息文件, 加载布局信息文件.
//
//
//
//
// ff:框架窗口_加载布局信息文件
// hWindow:窗口句柄
// aPaneList:窗格句柄数组
// nPaneCount:窗格数量
// pFileName:文件名
func X框架窗口_加载布局信息文件(窗口句柄 int, 窗格句柄数组 []int, 窗格数量 int32, 文件名 string) bool {
	r, _, _ := xFrameWnd_LoadLayoutFile.Call(uintptr(窗口句柄), uintptr(unsafe.Pointer(&窗格句柄数组[0])), uintptr(窗格数量), common.X文本到uintptr(文件名))
	return r != 0
}

// 框架窗口_添加窗格, 添加窗格到框架窗口.
//
//
//
//
// ff:框架窗口_添加窗格
// hWindow:窗口句柄
// hPaneDest:目标窗格
// hPaneNew:当前窗格
// align:对齐方式
func X框架窗口_添加窗格(窗口句柄 int, 目标窗格 int, 当前窗格 int, 对齐方式 xcc.X窗格对齐) bool {
	r, _, _ := xFrameWnd_AddPane.Call(uintptr(窗口句柄), uintptr(目标窗格), uintptr(当前窗格), uintptr(对齐方式))
	return r != 0
}

// 框架窗口_合并窗格.
//
//
//
// ff:框架窗口_合并窗格
// hWindow:窗口句柄
// hPaneDest:目标窗格
// hPaneNew:当前窗格
func X框架窗口_合并窗格(窗口句柄 int, 目标窗格 int, 当前窗格 int) bool {
	r, _, _ := xFrameWnd_MergePane.Call(uintptr(窗口句柄), uintptr(目标窗格), uintptr(当前窗格))
	return r != 0
}

// 框架窗口_附加窗口, 返回窗口资源句柄.
//
//
// ff:框架窗口_附加窗口
// hWnd:外部窗口句柄
// XCStyle:XC样式
func X框架窗口_附加窗口(外部窗口句柄 uintptr, XC样式 int32) int {
	r, _, _ := xFrameWnd_Attach.Call(外部窗口句柄, uintptr(XC样式))
	return int(r)
}

// 框架窗口_取拖动浮动窗格停留位置标识, 返回 拖动窗格 所处框架窗口单元格标识: xcc.FrameWnd_Cell_Type_.
//
// ff:框架窗口_取拖动浮动窗格停留位置标识
// hWindow:窗口句柄
func X框架窗口_取拖动浮动窗格停留位置标识(窗口句柄 int) xcc.X框架窗口单元格类型 {
	r, _, _ := xFrameWnd_GetDragFloatWndTopFlag.Call(uintptr(窗口句柄))
	return xcc.X框架窗口单元格类型(r)
}

// 框架窗口_取主视图坐标. 获取框架窗口主视图区域坐标.
//
//
// ff:框架窗口_取主视图坐标
// hWindow:窗口句柄
// pRect:返回矩形
func X框架窗口_取主视图坐标(窗口句柄 int, 返回矩形 *X结构_矩形) {
	xFrameWnd_GetViewRect.Call(uintptr(窗口句柄), uintptr(unsafe.Pointer(返回矩形)))
}

// 框架窗口_置窗格分隔条宽度.
//
//
// ff:框架窗口_设置窗格分隔条宽度
// hWindow:窗口句柄
// nWidth:宽度
func X框架窗口_设置窗格分隔条宽度(窗口句柄 int, 宽度 int32) {
	xFrameWnd_SetPaneSplitBarWidth.Call(uintptr(窗口句柄), uintptr(宽度))
}

// 框架窗口_取窗格分隔条宽度.
//
// ff:框架窗口_取窗格分隔条宽度
// hWindow:窗口句柄
func X框架窗口_取窗格分隔条宽度(窗口句柄 int) int32 {
	r, _, _ := xFrameWnd_GetPaneSplitBarWidth.Call(uintptr(窗口句柄))
	return int32(r)
}

// 框架窗口_置布局外间距. 设置框架窗口, 窗格区域布局的外间距.
//
//
//
//
//
// ff:框架窗口_设置布局外间距
// hWindow:窗口句柄
// left:左边
// top:上边
// right:右边
// bottom:底边
func X框架窗口_设置布局外间距(窗口句柄 int, 左边, 上边, 右边, 底边 int32) {
	xFrameWnd_SetLayoutMargin.Call(uintptr(窗口句柄), uintptr(左边), uintptr(上边), uintptr(右边), uintptr(底边))
}
